package com.nmsl.system.controller;


import com.nmsl.system.util.OSSUtil;
import com.nmsl.system.util.R;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.util.UUID;

@RestController
/**
 * @author: Jinping
 * @return:
 * @description:
 */
@RequestMapping("/file")
public class FileController {

    /**
     * 上传文件
     *
     * @return :上传文件的url
     * @Param file
     */
    @PostMapping("/upload")
    public R uploadFile(MultipartFile[] file) {
        try {
            // 获取上传文件的原始文件名
            String originalFilename = file[0].getOriginalFilename();
            // 定义文件后缀
            String suffix = null;
            // 如果原始文件名不为空
            if (originalFilename != null) {
                // 获取文件后缀
                suffix = originalFilename.substring(originalFilename.lastIndexOf("."));
            }
            // 生成新的文件名
            String filename = UUID.randomUUID().toString() + suffix;
            // 打印新的文件名
            System.out.println(filename);
            // 将文件上传到OSS，并返回URL
            String url = OSSUtil.upload(filename, file[0].getInputStream());
            System.out.println(url);
            // 返回URL
            return R.ok(url);
        } catch (Exception e) {
            return R.error(e);
        }
    }

    /**
     * @return :没有意义
     * @Param 需要删除的文件的url
     */
    @DeleteMapping("/delete")
    // 删除文件
    public R deleteFile(String url) {
        // 调用OSSUtil类中的delete方法，删除指定url的文件
        OSSUtil.delete(url);
        // 返回删除成功的消息
        return R.ok("删除成功");
    }
}
